/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function(s, numRows) {
    if (s.length <= numRows || numRows === 1) { // 如果字符串长度小于行数 或 行数为1，排列前后顺序不变
        return s;
    }
    let arrStr = new Array(numRows); // 根据函数设置字符串数组
    let flag = true; // 控制排列方向
    let num = 0; // 字符应加入的行号
    for (let i = 0; i < numRows; i++) { // 初始化
        arrStr[i] = '';
    }
    for (let i = 0; i < s.length; i++) {
        arrStr[num] += s[i];
        // 改变字符应加入的行号
        if (flag) { // 向下移动
            num++;
        } else { // 向上移动
            num--;
        }
        // 判断移动方向
        if (num == numRows - 1) { // 向下移动
            flag = false;
        } else if (num == 0) { // 向上移动
            flag = true;
        }
    }
    let str = arrStr.join('');
    return str;
};